package 第一周;

/**
 * @author xhw
 * @date 2024/2/27
 */

public class 单调数列 {
    //如果数组是单调递增或单调递减的，那么它是 单调 的。
    //
    //如果对于所有 i <= j，nums[i] <= nums[j]，那么数组 nums 是单调递增的。 如果对于所有 i <= j，nums[i]> = nums[j]，那么数组 nums 是单调递减的。
    //
    //当给定的数组 nums 是单调数组时返回 true，否则返回 false。
    //
    //
    //
    //示例 1：
    //
    //输入：nums = [1,2,2,3]
    //输出：true
    //示例 2：
    //
    //输入：nums = [6,5,4,4]
    //输出：true
    //示例 3：
    //
    //输入：nums = [1,3,2]
    //输出：false
    //
    //
    //提示：
    //
    //1 <= nums.length <= 105
    //-105 <= nums[i] <= 105
    public static void main(String[] args) {
        //先判断是递增还是递减，然后判断是否单调
        int[] nums1 = {1, 2, 2, 3};
        System.out.println(isMonotonic(nums1));

        int[] nums2 = {6, 5, 4, 4};
        System.out.println(isMonotonic(nums2));

        int[] nums3 = {1, 3, 2};
        System.out.println(isMonotonic(nums3));

    }

    private static boolean isMonotonic(int[] nums) {
        boolean increase = true;
        boolean decrease = true;
        for (int i = 0; i < nums.length - 1; i++) {
            if (nums[i] > nums[i + 1]) {
                increase = false;
            }
            if (nums[i] < nums[i + 1]) {
                decrease = false;
            }
        }
        return increase || decrease;
    }
}
